home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS12.ADF / AmigaBBS / bbs1 (.txt) < prev    next >
AmigaBASIC Source Code  |  1986-08-05  |  13KB  |  230 lines

  1. ON BREAK GOSUB Teflon
  2.  
  3. Main:
  4. CLEAR:GOSUB Setup:CLOSE #1:CLOSE #2:CLOSE#3:rings=0:teetse=1
  5. OPEN "com1:1200,n,8,1" AS 1 LEN=512:FOR ewan=1 TO 2000:NEXT ewan:PRINT#1,"ATX1"+CHR$(13):FOR ewan=1 TO 2000:NEXT ewan:PRINT#1,"ATS0=2 "+CHR$(13):FOR ewan=1 TO 2000:NEXT ewan
  6. connect=0:ellen=0:DIM ABCS$(185):DIM TBL$(45):DIM Board$(9):r$=CHR$(13)+CHR$(10):switch=0:okp=1:DIM ScanM$(100):DIM Assi(42):GOSUB Select
  7. Keepgoing:
  8. IF switch=0 THEN GOTO Comm :ELSE GOTO Intro
  9. GOTO Keepgoing
  10.  
  11. Setup:
  12. SCREEN 2,640,200,2,2:WINDOW 2,"BBS1",,31
  13. RETURN
  14.  
  15. Comm:
  16. ltomr=0:x$="":latpr=0:rings=0
  17. WHILE ltomr<2
  18.   INPUT#1,x$:IF LEFT$(x$,4)="RING" THEN ltomr=ltomr+1
  19. WEND
  20. effer=0:rings=1:x$="":a$=r$+"Press Return:":PRINT a$:PRINT#1,a$:x$="":effer=0:lester=0
  21. MoreComm:
  22. WHILE lester<1500
  23.   WHILE LOC(1)<>0
  24.     INPUT#1,x$:IF LEFT$(x$,7)="CONNECT" AND LEFT$(x$,12)<>"CONNECT 1200" THEN effer=3:lester=1500 
  25.     IF LEFT$(x$,12)="CONNECT 1200" THEN effer=5:lester=1500
  26.   WEND
  27.   lester=lester+1
  28. WEND
  29. IF effer=5 THEN FinalComm
  30. IF effer=3 THEN OtherFinalComm 
  31. UserID=0:rings=0:effer=0:GOTO Cleanup
  32. FinalComm:
  33. UserID=0:a$=r$+"Please Press Return:":GOSUB A1:IF LEN(t$)>5 THEN Cleanup
  34. a$=r$+"That felt good. Press return again:":GOSUB A1:GOTO Intro  
  35. OtherFinalComm:
  36. CLOSE#1:OPEN "com1:300,n,8,1" AS 1 LEN=512
  37. UserID=0:a$=r$+"Please Press Return:":GOSUB A1:IF LEN(t$)>5 THEN Cleanup
  38. a$=r$+"That felt good. Press return again:":GOSUB A1:GOTO Intro
  39.  
  40. Intro:
  41. IF rings=0 THEN PRINT#1,"ATS0=0"+CHR$(13)
  42. IF rings=0 THEN CLOSE#1
  43. a$=r$+r$+r$+r$:GOSUB Modem:a$="Welcome"+r$:GOSUB Modem
  44. a$="      to"+r$:GOSUB Modem:a$="        AmigaAtlanta"+r$:GOSUB Modem:a$="        BBS"+r$:GOSUB Modem
  45. a$=r$+r$+r$:GOSUB Modem:a$="Enter your First Name: ":GOSUB A1:Name1$=UCASE$(LEFT$(t$,LEN(t$)-1)):IF LEN(Name1$)>9 THEN Name1$=LEFT$(Name1$,9)
  46. a$=r$+"Enter your Last Name: ":GOSUB A1:Name2$=UCASE$(LEFT$(t$,LEN(t$)-1)):IF LEN(Name2$)>15 THEN Name2$=LEFT$(Name2$,15)
  47. UsernaMe$=Name1$+" "+Name2$+"=":UsernaMe=LEN(UsernaMe$):Ddt=0:Dch=0
  48. WHILE Ddt<1
  49.   Dch=Dch+1:uil$=STR$(Dch):uil$=RIGHT$(uil$,1)
  50.   OPEN "I",#3,"df1:Storehouse"+uil$:Dxq=0:Lmn=0:Dab=0
  51.   WHILE NOT EOF(3)
  52.     Dxq=Dxq+1:LINE INPUT#3, ABCS$(Dxq)
  53.   WEND
  54.   Dzz=0
  55.   WHILE Lmn<1
  56.     Dzz=Dzz+1:IF UsernaMe$=LEFT$(ABCS$(Dzz),UsernaMe) THEN Lmn=5:Dab=Dzz
  57.     IF Dzz=Dxq AND Lmn<>5 THEN Lmn=2
  58.   WEND
  59.   IF Lmn=5 THEN Ddt=5:UserID$=RIGHT$(ABCS$(Dab),LEN(ABCS$(Dab))-UsernaMe)
  60.   IF Lmn=2 AND Dch=6 THEN Ddt=3
  61.   CLOSE#3
  62. WEND
  63. IF Ddt=3 THEN NewUser
  64. a$="Enter your Password: ":GOSUB A1:Password$=UCASE$(LEFT$(t$,LEN(t$)-1))
  65. GOSUB CheckUser:CHAIN "df0:Menus",,ALL
  66.  
  67. Select:
  68. CLS:PRINT "Date:"+DATE$+"  Time:"+TIME$
  69. PRINT:PRINT:PRINT "          ______________________________________________  "
  70. PRINT "          |                                            |"
  71. PRINT "          |            (U)se System                    |"
  72. PRINT "          |            (T)urn on Carrier               |"
  73. PRINT "          |____________________________________________| "
  74. PRINT 
  75. INPUT "             U,T, or (Q)uit >",Select$:Select$=UCASE$(Select$)
  76. IF Select$="U" THEN switch=1:GOTO Intro
  77. IF Select$="T" THEN CLS:RETURN
  78. CLS:CLOSE 1:WINDOW CLOSE 2:x=FRE(0):PRINT x:END
  79.  
  80. Modem:
  81. IF rings=0 THEN OtherModem
  82. x=FRE(0):FOR j= 1 TO LEN(a$):P$=MID$(a$,j,1)
  83. PRINT P$;:PRINT#1,P$;:NEXT j:a$="":P$="":RETURN
  84.  
  85. OtherModem:
  86. x=FRE(0):FOR j= 1 TO LEN(a$):P$=MID$(a$,j,1)
  87. PRINT P$;:NEXT j:a$="":P$="":RETURN
  88.  
  89. Answers:
  90. telly=0:t$="":t=0:i$="":ch$="":alter=0:IF rings=0 THEN SomeAnswers
  91. WHILE 1 AND alter<1
  92.   WHILE LOC(1)<>0
  93.     ch$=INPUT$(1,1)
  94.     equivs=ASC(ch$) AND 127:IF equivs<>1 THEN ch$=CHR$(equivs)
  95.     i$=i$+ch$:equivs=0:connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN Cleanup
  96.     telly=telly+1:IF telly=78 THEN ch$=r$:telly=0
  97.     IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2):telly=telly-2
  98.     IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN alter=3:telly=0
  99.     a$=ch$:GOSUB Modem:ch$=""
  100.   WEND
  101.   ch$=INKEY$:i$=i$+ch$
  102.   a$=ch$:GOSUB Modem
  103.   IF ch$=CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN telly=0:alter=3
  104.   IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2):telly=telly-2
  105.   ch$="":connect=PEEK (&Hbfd*&H1000+&H0):IF connect<>0 THEN Cleanup
  106. WEND
  107. IF i$<>"" THEN MoreAnswers
  108. SomeAnswers:
  109. ch$=INKEY$:i$=i$+ch$:a$=ch$:GOSUB Modem
  110. IF ch$= CHR$(10) OR ch$=CHR$(13) OR ch$=r$ THEN MoreAnswers
  111. IF ch$=CHR$(8) AND LEN(i$)>=2 THEN i$=LEFT$(i$,LEN(i$)-2)
  112. ch$=""
  113. GOTO SomeAnswers
  114. MoreAnswers:
  115. IF i$="" THEN ch$="":GOTO Answers
  116. t$=i$:IF LEN(t$)>80 THEN t$=LEFT$(t$,78)+r$
  117. RETURN
  118.  
  119. NewUser:
  120. a$=r$+"To use this board you must be a Registered User."+r$:GOSUB Modem
  121. a$="Do you want to register (Y/N)?":GOSUB A1:Register$=UCASE$(LEFT$(t$,1))
  122. IF Register$<>"Y" THEN UserID=0:GOTO Cleanup
  123. a$=r$+r$+"Enter your First Name: ":GOSUB A1:Name1$=UCASE$(LEFT$(t$,LEN(t$)-1)):a$=r$+"Enter your Last Name:":GOSUB A1:Name2$=UCASE$(LEFT$(t$,LEN(t$)-1))
  124. a$=r$+"What type of Computer: ":GOSUB A1:Computer$=UCASE$(t$)
  125. a$=r$+"Street Address: ":GOSUB A1:Address$=UCASE$(t$)
  126. a$=r$+"City: ":GOSUB A1:City$=UCASE$(t$):a$=r$+"State:":GOSUB A1:State$=UCASE$(t$)
  127. PassUser:
  128. a$=r$+"4 to 9 letter Password you want to use: ":GOSUB A1:Password$=UCASE$(LEFT$(t$,LEN(t$)-1))
  129. IF LEN(Password$)<4 OR LEN(Password$)>9 THEN PassUser
  130. a$=r$+"OK, one last question-":GOSUB Modem:a$=r$+"Age: ":GOSUB A1:Age$=t$
  131. MoreUser:
  132. a$=r$+r$+r$:GOSUB Modem:a$="1) First Name: "+Name1$+r$:GOSUB Modem:a$="2) Last Name: "+Name2$+r$:GOSUB Modem
  133. a$="3) Computer: "+Computer$+r$:GOSUB Modem:a$="4) Address: "+Address$+r$:GOSUB Modem
  134. a$="5) City: "+City$+r$:GOSUB Modem:a$="6) State: "+State$+r$:GOSUB Modem:a$="7) Age: "+Age$+r$:GOSUB Modem
  135. a$="8) Password: "+Password$+r$:GOSUB Modem
  136. a$=r$+r$+"Change 1-8 (OR 0 TO continue): ":GOSUB A1
  137. t=VAL(LEFT$(t$,2)):IF t<1 OR t>8 THEN EnterUser
  138. IF t=1 THEN a$=r$+"First Name:":GOSUB A1:Name1$=UCASE$(LEFT$(t$,LEN(t$)-1)):GOTO MoreUser
  139. IF t=2 THEN a$=r$+"Last Name:":GOSUB A1:Name2$=UCASE$(LEFT$(t$,LEN(t$)-1)):GOTO MoreUser
  140. IF t=3 THEN a$=r$+"Computer:":GOSUB A1:Computer$=UCASE$(t$):GOTO MoreUser
  141. IF t=4 THEN a$=r$+"Street Address:":GOSUB A1:Address$=UCASE$(t$):GOTO MoreUser
  142. IF t=5 THEN a$=r$+"City:":GOSUB A1:City$=UCASE$(t$):GOTO MoreUser
  143. IF t=6 THEN a$=r$+"State:":GOSUB A1:State$=UCASE$(t$):GOTO MoreUser
  144. IF t=7 THEN a$=r$+"Age:":GOSUB A1:Age$=t$:GOTO MoreUser
  145. PassMoreUser:
  146. IF t=8 THEN a$=r$+"Password:":GOSUB A1:Password$=UCASE$(LEFT$(t$,LEN(t$)-1))
  147. IF LEN(Password$)<4 OR LEN(Password$)>9 THEN PassMoreUser
  148. GOTO MoreUser
  149. EnterUser:
  150. a$=r$+r$+r$+"Writing data. Please wait..."+r$:GOSUB Modem
  151. CLOSE#2:OPEN "R", #2, "df1:USER",120
  152. FIELD #2, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  153. FIELD #2, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  154. Ddd=0:Dch=0
  155. WHILE Dch<1
  156.   Ddd=Ddd+1:GET#2,Ddd:IF check$<>"P" THEN Dch=1
  157. WEND
  158. UserID=Ddd:UserID$=STR$(UserID):UserID$=RIGHT$(UserID$,LEN(UserID$)-1):uil$=""
  159. IF UserID>=1 AND UserID<=185 THEN uil$="1"
  160. IF UserID>=186 AND UserID<=370 THEN uil$="2"
  161. IF UserID>=371 AND UserID<=555 THEN uil$="3"
  162. IF UserID>=556 AND UserID<=740 THEN uil$="4"
  163. IF UserID>=741 AND UserID<=925 THEN uil$="5"
  164. IF UserID>=926 AND UserID<=1000 THEN uil$="6"
  165. IF UserID>1000 THEN a$=r$+"Sorry, no room at the Inn."+r$+"Leave a note in Feedback, and I'll try to set you up later."+r$:GOSUB Modem:N1$="guest":GOTO Guestuser
  166. OPEN "A",#3,"df1:Storehouse"+uil$
  167. PRINT#3,Name1$+" "+Name2$+"="+UserID$
  168. CLOSE#3:GET#2,UserID
  169. LSET check$="P":LSET N1$=Name1$:LSET N2$=Name2$:LSET Co$=Computer$:LSET Adr$=Address$:LSET CI$=City$
  170. LSET STA$=State$:LSET AG$=Age$:LSET PAS$=Password$:LSET B1$="000":LSET B2$="000":LSET B3$="000"
  171. LSET B4$="000":LSET B5$="000":LSET B6$="000":LSET B7$="000":LSET B8$="000":LSET B9$="000"
  172. LSET EM1$="0":LSET EM2$="0":LSET EM3$="0":LSET EM4$="0":LSET EM5$="0"
  173. LSET Valu$="000":LSET Vte1$="0":LSET Vte2$="0":LSET Vte3$="0"
  174. PUT#2, UserID:CLOSE#2:Veru$="000":FOR j=1 TO 9:Board$(j)="000":NEXT j
  175. j=0:FOR j=1 TO 5:EMail$(j)="0":NEXT j
  176. Altes$(1)="0":Altes$(2)="0":Altes$(3)="0"
  177. a$="Your User ID is:"+UserID$+r$:GOSUB Modem
  178. a$=" You should be validated in 24 hours."+r$:GOSUB Modem
  179. a$=r$+"Press Return to continue:":GOSUB A1:CHAIN "df0:Menus",,ALL
  180.  
  181. CheckUser:
  182. CLOSE#2:OPEN "R", #2, "df1:USER",120
  183. FIELD #2, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  184. FIELD #2, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  185. UserID=VAL(UserID$):GET#2,UserID
  186. PAS$=LEFT$(PAS$,LEN(Password$)):IF LEN(Password$)<3 THEN okp=0:CLOSE#2:RETURN
  187. IF Password$<>PAS$ THEN okp=0:CLOSE#2:RETURN
  188. Name1$=N1$:Name2$=N2$:Computer$=Co$:Address$=Adr$:City$=CI$:State$=STA$:Age$=AG$:Password$=PAS$:Veru$=Valu$:Board$(1)=B1$:Board$(2)=B2$:Board$(3)=B3$
  189. Board$(4)=B4$:Board$(5)=B5$:Board$(6)=B6$:Board$(7)=B7$:Board$(8)=B8$:Board$(9)=B9$:EMail$(1)=EM1$:EMail$(2)=EM2$:EMail$(3)=EM3$:EMail$(4)=EM4$:EMail$(5)=EM5$
  190. Altes$(1)=Vte1$:Altes$(2)=Vte2$:Altes$(3)=Vte3$
  191. okp=1:CLOSE#2:eM=0
  192. FOR j=1 TO 5:IF EMail$(j)="1" THEN eM=eM+1:NEXT j
  193. a$=r$+"You have "+STR$(eM)+" piece(s) of mail."+r$:GOSUB Modem
  194. RETURN
  195.  
  196. A1:
  197. GOSUB Modem:GOSUB Answers:RETURN
  198.  
  199. Cleanup:
  200. 10 a$=r$+"Thank you for calling AmigaAtlanta!"+r$:GOSUB Modem
  201. CLOSE#3:CLOSE#2:IF UserID=0 OR UserID=1001 THEN MoreCleanup
  202. CLOSE#2:OPEN "R", #2, "df1:USER",120
  203. FIELD #2, 1 AS check$,9 AS N1$,15 AS N2$,10 AS Co$,15 AS Adr$,10 AS CI$,10 AS STA$,3 AS AG$,9 AS PAS$,3 AS B1$,3 AS B2$,3 AS B3$,3 AS B4$,3 AS B5$,3 AS B6$,3 AS B7$,3 AS B8$,3 AS B9$,1 AS EM1$,1 AS EM2$,1 AS EM3$,1 AS EM4$,1 AS EM5$,3 AS Valu$
  204. FIELD #2, 117 AS dump$,1 AS Vte1$,1 AS Vte2$,1 AS Vte3$
  205. GET#2, UserID
  206. LSET PAS$=Password$:LSET B1$=Board$(1):LSET B2$=Board$(2):LSET B3$=Board$(3):LSET B4$=Board$(4):LSET B5$=Board$(5)
  207. LSET B6$=Board$(6):LSET B7$=Board$(7):LSET B8$=Board$(8):LSET B9$=Board$(9):LSET EM1$=EMail$(1):LSET EM2$=EMail$(2)
  208. LSET EM3$=EMail$(3):LSET EM4$=EMail$(4):LSET EM5$=EMail$(5)
  209. LSET Vte1$=Altes$(1):LSET Vte2$=Altes$(2):LSET Vte3$=Altes$(3)
  210. PUT#2,UserID:CLOSE#2
  211. MoreCleanup:
  212. CLOSE#1:FOR ewan=1 TO 2000:NEXT ewan
  213. OPEN "com1:1200,n,8,1" AS 1 LEN=512:PRINT#1,"+++ ":FOR ewan=1 TO 2000:NEXT ewan
  214. FOR ewan=1 TO 2000:NEXT ewan:PRINT#1,"ATZ"+CHR$(13):FOR ewan=1 TO 4000:NEXT ewan
  215. connect=PEEK(&Hbfd*&H1000+&H0):IF connect<>40 AND connect<>232 THEN MoreCleanup
  216. PRINT#1,"ATC1 "+CHR$(13):FOR ewan=1 TO 2000:NEXT ewan:FOR ewan=1 TO 2000:NEXT ewan:PRINT#1,"ATS0=2 "+CHR$(13):FOR ewan=1 TO 2000:NEXT ewan
  217. FOR ewan=1 TO 2000:NEXT ewan:PRINT#1,"ATX1 "+CHR$(13):FOR ewan=1 TO 2000:NEXT ewan
  218. connect=0:ellen=0:switch=0:okp=1:UserID=0:Password$="":Veru$="000"
  219. GOTO Keepgoing
  220.  
  221. Guestuser:
  222. UserID=1001:UserID$="1001":Name1$="GUEST":Name2$="GUEST":eM=0:Password$="GUEST":Veru$="000"
  223. FOR j=1 TO 5:EMail$(j)="0":NEXT j:CHAIN "df1:Menus",,ALL
  224.  
  225. Teflon:
  226. IF teetse=1 THEN a$=r$+"Sorry, not allowed!":GOSUB Modem:okp=1:RETURN
  227. IF teetse=0 THEN ltomr=1:teetse=1:RETURN
  228. RETURN
  229.  
  230.